
var path = require('path')
const webpack = require('webpack'); //to access built-in plugins
const HtmlWebpackPlugin = require('html-webpack-plugin'); //installed via npm

var  URL = './';
const config = {
  entry: [
    path.resolve(__dirname, './main.js')
  ],
  output: {
    path: path.resolve(__dirname, URL),
    filename: 'build.js'
  },
  module: {
    rules: [
      // html
      // {
      //   test: /\.html$/,
      //   loader: 'html-loader',
      //   query: {
      //     minimize: true
      //   },
      // },

      {
        test: /\.html$/,
        loader: "raw-loader" // loaders: ['raw-loader'] is also perfectly acceptable.
      },
      // vue
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          loaders: {
          }
          // other vue-loader options go here
        }
      },
      // js
      {
        test: /\.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/
      },
      // 图片
      {
        test: /\.(png|jpg|gif|svg)$/,
        loader: 'file-loader',
        options: {
          name: URL+'images/[name].[ext]?[hash]'
        }
      },
      // styl$
      {
        test: /\.styl$/,
        use: [
          'style-loader',
          'css-loader',
          'stylus-loader'
        ]
      },
      // css
      // {
      //   test: /\.css$/,
      //   use: [
      //     'style-loader',
      //     'css-loader'
      //   ]
      // },
    ]
  },
  // 解析
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.esm.js'
    }
  },
  // webpack-dev-server
  devServer: {
    // http://121.43.119.235:8088/jinr-bi-web/operation/InvestAmount
    proxy: { // proxy URLs to backend development server
      '/jinr-bi-web': {
        target: 'http://121.43.119.235:8088',  //目标主机
        changeOrigin: true,  //需要虚拟主机站点
        pathRewrite: {
          '^/jinr-bi-web': '/jinr-bi-web'  //重写路径

        },
        router: {
          'integration.localhost:3000' : 'http://localhost:8001',  // host only
          'staging.localhost:3000'     : 'http://localhost:8002',  // host only
          'localhost:3000/api'         : 'http://localhost:8003',  // host + path
          '/rest'                      : 'http://localhost:8004'   // path only
        }
      },
    },


    contentBase: path.join(__dirname, './'), // boolean | string | array, static file location
    compress: true, // enable gzip compression  一切服务都启用gzip压缩：
    hot: true, // hot module replacement. Depends on HotModuleReplacementPlugin
    https: false, // true for self-signed, object for cert authority
    //当使用HTML5历史API，404任意的响应可以提供为index.html页面。通过传入以下启用：
    historyApiFallback: true,
    //启用noInfo后，诸如“启动时和每次保存之后，那些显示的webpack包（bundle）信息”的消息将被隐藏。
    // 错误和警告仍然会显示。
    noInfo: true,
    // host: '192.168.10.242',
    port: 9000,
  },
  // 性能
  // 配置如何展示性能提示。例如，如果一个资源超过 250kb，webpack 会对此输出一个警告来通知你。
  performance: {
    hints: false  //可以超过 250kb 的资源
  },
  // 开发工具
  //eval-source-map - 初始化 SourceMap 时比较慢，但是会在重构建时提供很快的速度，并且生成实际的文件
  devtool: '#eval-source-map',
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new HtmlWebpackPlugin(), // Generates default index.html
    new HtmlWebpackPlugin({  // Also generate a test.html
      filename: '营销分析-更多分析.html',
      template: './营销分析-更多分析.html'
    })
  ]
}
if (process.env.NODE_ENV === 'production') {
  module.exports.devtool = '#source-map'
  // http://vue-loader.vuejs.org/en/workflow/production.html
  module.exports.plugins = (module.exports.plugins || []).concat([
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: '"production"'
      }
    }),
    new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
      compress: {
        warnings: false
      }
    }),
    new webpack.LoaderOptionsPlugin({
      minimize: true
    })
  ])
}

module.exports = config
